<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui"
	xmlns:f="http://java.sun.com/jsf/core">
<f:view>
	<h:panelGrid columns="2">
		<h:outputText value="Nome do Perfil" />
		<h:inputText id="Nome_Perfil" label="Nome do Perfil" value="#{perfilManager.perfil.nomePerfil}" required="true" maxlength="80">
			<f:validateLength maximum="80" minimum="3" />
		</h:inputText>

		<h:outputText value="Aplicações" />
		<h:selectOneMenu value="#{perfilManager.filterAplicacao}"
			valueChangeListener="#{perfilManager.filterAplicacoes}">
			<f:selectItem itemValue="0" itemLabel="Selecione um Sistema" />
			<f:selectItems value="#{perfilManager.roleAplicacoes}" />
			<f:ajax event="change" render="panel_modulos" />
		</h:selectOneMenu>

		<h:outputText value="Módulos" />
		<h:panelGroup id="panel_modulos">
			<h:selectOneMenu value="#{perfilManager.filterModulo}"
				valueChangeListener="#{perfilManager.filterRoles}">
				<f:selectItem itemValue="0" itemLabel="Selecione um Módulo" />
				<f:selectItems value="#{perfilManager.listRoles}" />
				<f:ajax event="change" render="permissao_disponivel" />
			</h:selectOneMenu>
		</h:panelGroup>

	</h:panelGrid>
	<table style="width:1005;">
		<tr>
			<td style="vertical-align:top">
				<h:panelGroup id="permissao_disponivel">
					<h:outputText value="Permissões Disponíveis" />
					<br />
					<p:commandButton value="Selecionar Todos"
						action="#{perfilManager.addAll}"
						rendered="#{!perfilManager.source.isEmpty()}"
						process=":form:permissao_disponivel"
						update=":form:permissao_selecionada :form:permissao_disponivel" />
					<p:dataTable emptyMessage="Não existe informação"
						value="#{perfilManager.source}" var="source">
						<p:column headerText="Permissão">
							<h:outputText value="#{source.modulo} - #{source.displayName}" />
						</p:column>
						<p:column>
							<p:commandButton value="Adicionar"
								action="#{perfilManager.addPermissao}"
								process=":form:permissao_disponivel"
								update=":form:permissao_selecionada :form:permissao_disponivel">
								<f:setPropertyActionListener target="#{perfilManager.role}"
									value="#{source}" />
							</p:commandButton>
						</p:column>
					</p:dataTable>
				</h:panelGroup>
			</td>
			<td style="vertical-align:top">
				<h:panelGroup id="permissao_selecionada">
					<h:outputText value="Permissões Selecionadas" /><br />
					<p:commandButton value="Remover Todos"
							action="#{perfilManager.removeAll}"
							rendered="#{!perfilManager.target.isEmpty()}"
							process=":form:permissao_selecionada"
							update=":form:permissao_selecionada :form:permissao_disponivel" />
					
					<p:dataTable id="permissao_target"
						emptyMessage="Não existe informação" value="#{perfilManager.target}"
						var="target" paginator="true" rows="5">
						<p:column headerText="Permissão">
							<h:outputText value="#{target.modulo} - #{target.displayName}" />
						</p:column>
						<p:column>
							<p:commandButton value="Remover"
								action="#{perfilManager.removePermissao}"
								process="@this"
								update=":form:permissao_selecionada :form:permissao_disponivel">
								<f:setPropertyActionListener target="#{perfilManager.role}"
									value="#{target}" />
							</p:commandButton>
						</p:column>
					</p:dataTable>
				</h:panelGroup>
			</td>
		</tr>
	</table>

	
	<div class="actions">
		<p:commandButton action="#{perfilManager.save}" value="Salvar" rendered="#{perfilManager.perfil.id == null}" update="form"/>
		<p:commandButton action="#{perfilManager.update}" value="Salvar" rendered="#{perfilManager.perfil.id != null}" update="form"/>
	</div>


</f:view>
</html>